
export class BaseTool {
  log = (s: any) => {
    console.log(s)
  }
 
  isEmpty = (o: any) => {
    if (o == undefined || o == null || o == 'undefined' || o == 'null' || o == 'NULL') {
      return true
    }

    // 检查数组是否为空
    if (Array.isArray(o)) {
      return o.length === 0
    }

    // 检查Map是否为空
    if (o instanceof Map) {
      return o.size === 0
    }

    // 检查Set是否为空
    if (o instanceof Set) {
      return o.size === 0
    }

    // 检查Iterable对象是否为空
    if (typeof o[Symbol.iterator] === 'function') {
      return !o[Symbol.iterator]().next().done
    }

    // 检查字符串是否为空或仅包含空白字符
    if (typeof o === 'string' || o instanceof String) {
      return o.toString().trim() === ''
    }

    // 如果不是以上类型，则认为不是空的
    return false
  }

  /**
   * 动态解析字符串模版
   * @param str 字符串模版
   * @param data 参数对象
   * @returns 解析后的字符串
   */
  template = (str: string, data: Record<string, any>): string => {
    return str.replace(/\{{2}([.\w[\]\s]+)\}{2}/g, (match, key) => {
      return key in data ? String(data[key]) : match
    })
  }
}
